home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Scene Storm
/
Scene Storm - Volume 1.iso
/
coding
/
asm
/
demos
/
howtoskinacat
/
fractalcube
/
picpreprocessmat.s
< prev
next >
Wrap
Text File
|
1980-01-03
|
2KB
|
107 lines
ùúùúÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ï;------------------T--------T
*******************************************************************************
**
** Picture-preprocessor
**
** output:
** a0=save start
** a1=save end
**
*******************************************************************************
Begin: lea RawPicture(pc),a0
lea DotPicture(pc),a1
bsr PicPreprocess
lea DotPicture(pc),a0
lea CodePicture,a1
lea CodePointers,a2
bsr GenerateCode
lea CodePointers,a0
rts
GenerateCode: move.w #208-1,d3
move.l a1,a4
.nextsojle move.l a1,a3
sub.l a4,a3
move.l a3,(a2)+
moveq #0,d2 ;gammel farve
.sojleloop moveq #0,d0
move.b (a0)+,d0 ;pos
cmp.b #$ff,d0
bne.b .ok
move.w #$4E75,(a1)+
dbra d3,.nextsojle
rts
.ok move.w Instr1(pc),(a1)+
add.w d0,d0
move.w d0,(a1)+
move.b (a0)+,d1 ;farve
eor.b d1,d2
btst #0,d2
beq.b .plan0ok
move.w Instr2(pc),(a1)+
clr.w (a1)+
.plan0ok btst #1,d2
beq.b .plan1ok
move.w Instr2(pc),(a1)+
move.w #44,(a1)+
.plan1ok
move.b d1,d2
bra.b .sojleloop
Instr1: move.w 0(a0),d0 ;0=ypos
Instr2: bchg d1,(a1,d0.w)
PicWidth: EQU 26
PicPreprocess: moveq #26-1,d3 ;bytesøjler
.byteloop moveq #7,d2 ;bitnummer
.bitloop move.w #208-1,d6
moveq #0,d5 ;gammel farve
moveq #(256-208)/2,d0
.sojleloop moveq #0,d4 ;farve
btst d2,(a0)
beq.b .plan1ok
bset #0,d4
.plan1ok btst d2,Picwidth(a0)
beq.b .plan2ok
bset #1,d4
.plan2ok
cmp.b d4,d5
beq.b .nextline
move.b d4,d5
move.b d0,(a1)+
move.b d5,(a1)+
.nextline lea PicWidth*2(a0),a0
addq.w #1,d0
dbra d6,.sojleloop
tst.b d5
beq.b .zero
move.b d0,(a1)+
clr.b (a1)+
.zero st (a1)+
lea -208*PicWidth*2(a0),a0
dbra d2,.bitloop
addq.w #1,a0
dbra d3,.byteloop
rts
INCDIR "Work:Code/Sources/HTSAC/FractalCube/"
RawPicture: INCIFF "Matilde.brush"
DotPicture: blk.b 100000,0
CodePointers: blk.l 208,0
CodePicture: blk.b 100000,0